﻿using System;

namespace Bricks.Data
{

    /// <summary>
    /// 
    /// </summary>
    public interface IManipulator
    {

        /// <summary>
        /// 
        /// </summary>
        /// <param name="action"></param>
        void Transact(Action action);

        /// <summary>
        /// 
        /// </summary>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="action"></param>
        /// <returns></returns>
        TResult Transact<TResult>(Func<TResult> action);
    }
}
